Network switch with interconnected member nodes

ABSTRACT

According to examples, a network switch may include plurality of member nodes interconnected by member links to exchange data plane traffic. The network switch may also include a commander node to run control and management plane protocols for the plurality of member nodes. A first member node of the plurality of member nodes that receives a packet incoming into the network switch calculates a forwarding path for the packet to a destination through a second member node of the plurality of member nodes and forwards the packet to the second member node, and the second member node forwards the packet according to the forwarding path calculated by the first member node without calculating another forwarding path for the packet.

BACKGROUND

In front plane stacking or switch stacking, a plurality of physicalswitches are virtualized into one virtual switch. The use of front planestacking generally provides a relatively high level of resiliency,scalability, and higher bandwidth than any of the individual physicalswitches may provide individually. In addition, front plane stackingsupports the use of dedicated point-to-point Ethernet (e.g., copper orfiber) links to interconnect the physical switches. The dedicatedpoint-to-point Ethernet links may carry data plane traffic and may alsoexchange control plane traffic. The interconnection of the physicalswitches through such links enables the front plane stacked physicalswitches to be assigned a single IP address and to appear to users as asingle switch.

BRIEF DESCRIPTION OF THE DRAWINGS

Features of the present disclosure are illustrated by way of example andnot limited in the following figure(s), in which like numerals indicatelike elements, in which:

FIG. 1 shows a block diagram of an example network switch that mayimplement front plane stacking;

FIG. 2 shows another block diagram of the example network switchdepicted in FIG. 1; and

FIGS. 3 and 4, respectively, depict flow diagrams of example methods foroperating a network switch.

DETAILED DESCRIPTION

For simplicity and illustrative purposes, the present disclosure isdescribed by referring mainly to embodiments. In the followingdescription, numerous specific details are set forth in order to providea thorough understanding of the present disclosure. It will be readilyapparent however, that the present disclosure may be practiced withoutlimitation to these specific details. In other instances, some methodsand structures have not been described in detail so as not tounnecessarily obscure the present disclosure.

Throughout the present disclosure, the terms “a” and “an” are intendedto denote at least one of a particular element. As used herein, the term“includes” means includes but not limited to, the term “including” meansincluding but not limited to. The term “based on” means based at leastin part on.

Disclosed herein are network switches including a plurality ofinterconnected member nodes. The member nodes may each be a physicalswitch and the network switches disclosed herein may be termed a frontplane stacked switch or a virtual switch. That is, the member nodes maybe interconnected and may function as a single virtual switch. Each ofthe member nodes may include a topology manager that detects a topologyof the member nodes and identifies forwarding paths through the virtualswitch for packets that the member nodes receive. In addition, aningress member node that receives the packet from a source external tothe network switch may calculate a forwarding path for the packet andmay forward the packet to a second member node in the virtual switch.The second member node may forward the packet according to thepreviously calculated forwarding path without calculating anotherforwarding path.

The topology managers in each of the member nodes may build adjacencymaps and may detect the network topology from the adjacency maps. Thetopology managers may further determine uni-destination trafficforwarding paths and multi-destination traffic forwarding paths from theadjacency maps. In addition, the topology managers may program arespective ASIC in the member nodes with the determined forwarding pathintelligence. As noted herein, an ingress member node may calculate aforwarding path for a packet received via an external communication linkto the ingress member node and another member node that receives thepacket from the ingress member node may forward the packet according tothe calculated forwarding path. That is, the other member node may notcalculate another forwarding path prior to forwarding the packet. In oneregard, therefore, the amount of computational processing performed on amember node of the network switch disclosed herein may be reduced orminimized, which may reduce the power consumption and the processingtime required to process packets for forwarding to another member nodeor to a destination outside of the network switch. Thus, for instance,through implementation of the network switches and the methods disclosedherein, packets may be switched in a relatively more efficient manner ascompared with having each of the member nodes in a network switchperform separate forwarding path calculations.

As used herein, the term “network switch” may refer to a plurality ofmember nodes (physical switches) that are interconnected via memberlinks to function as a single logical switch. The interconnected membernodes may additionally or in other examples be termed a virtual switch,a logical switch, a front plane stack virtual switch, a fabric switch, avirtual switching framework, or the like. The terms “packet,” “datapacket,” or “frame” may refer to a group of bits that may be transportedtogether across a network. In one regard, these terms should not beconstrued as being limited to Layer 2 or Layer 3 traffic. Instead, theseterms may be used interchangeably herein to refer to traffic that may becommunicated over either or both Layer 2 or Layer 3 networks.

With reference first to FIG. 1, there is shown a block diagram of anexample network switch 100 that may implement front plane stacking. Itshould be understood that the network switch 100 depicted in FIG. 1 mayinclude additional components and that some of the components describedherein may be removed and/or modified without departing from a scope ofthe network switch 100.

According to examples, the network switch 100 may be a virtual or,equivalently, a logical switch, that is composed of a plurality ofphysical member nodes 110-1 to 110-4. Each of the physical member nodes110-1 to 110-4, which are also referenced herein as member nodes 110,may be a physical switch. As such, each of the member nodes 110 mayinclude a plurality of ports in which some of the ports may be dedicatedfor external communications, e.g., to be coupled to hosts or otherswitches external to the network switch 100 via external communicationlinks. In some examples, less than all of the member nodes 110 mayinclude ports that are dedicated for external communications.

The member nodes 110 may be interconnected with each other throughmember links 112 via some of the ports. The member links 112 may bededicated point-to-point links, e.g., Ethernet links, and may also bephysical links, such as copper, fiber, etc., links between the membernodes 110. The member links 112 may also be referenced as front planestacking links. In one regard, the member links 112 may form a logicalinterface among the member nodes 110. As discussed herein, the membernodes 110 may use the logical interface to carry data plane traffic andto also exchange control plane traffic. The member nodes 110 may use theexchanged control plane traffic to maintain the topology of the membernodes 110 as discussed herein. The logical interface may also enable themember nodes 110 to function as a single network switch, e.g., may beassigned a single IP address.

The member nodes 110 may be configured in a number of different types oftopologies. In the example depicted in FIG. 1, the member nodes 110 hasbeen depicted as being configured in a four member ring topology. Inother examples, the member nodes 110 may be configured in a chaintopology. Although the network switch 100 has been depicted with fourmember nodes 110, it should be understood that the network switch 100may include a lesser or a greater number of member nodes withoutdeparting from a scope of the network switch 100 disclosed herein. Byway of particular example, the network switch 100 may include ten membernodes 110 configured in a ring or chain topology.

According to examples, one of the member nodes 110-1 in the networkswitch 100 may function as a commander node and another one of themember nodes 110-2 may function as a standby node. The commander node110-1 may run control and management plane protocols for the membernodes 110. The commander node 110-1 may also manage forwarding databasesand may synchronize the forwarding databases with the standby node110-2. The commander node 110-1 may further control all of the linecards in the network switch 100, including the line card in the standbynode 110-2. The standby node 110-2 may be a state-full backup device tothe commander node 110-1. The standby node 110-2 may remain in a standbymode and may be ready to take control of the network switch 100 if thecommander node 110-1 fails. As such, for instance, the network switch100 may continue operating seamlessly during a commander node 110-1failure.

The member nodes 110-3 and 110-4 other than the commander node 110-1 andthe standby node 110-2 may not run networking protocols and may not havestates. In addition, the ports on these member nodes 110-3 and 110-4 maybe directly controlled and programmed by the commander node 110-1.Moreover, when the commander node 110-1 fails and the standby node 110-2is promoted to become the commander node 110-1, one of the other membernodes 110-3 or 110-4 may become a standby node. The selection of themember node 110-3 or 110-4 to become the standby node may be made in anysuitable manner, e.g., based upon the member node number, configuredmember priority, etc.

As shown in FIG. 1, a member node 110-3 may receive an incoming packet114 through a port on the member node 110-3 that is dedicated forexternal communications. For instance, the member node 110-3 may receivethe incoming packet 114 from an external host or an external switch viaa port that is connected to an external communication link 116. Themember node 110-3 may process the incoming packet 114 to perform aforwarding path calculation 118 on the incoming packet 114. That is, forinstance, an application specific integrated circuit (ASIC) of themember node 110-3 may perform the forwarding path calculation on theincoming packet 114 to determine which of the member nodes 110-1 to110-4 the packet 114 is to be forwarded for the packet 114 to becorrectly outputted from the network switch 100 to reach the destinationof the packet 114.

As shown in FIG. 1, calculation of the forwarding path 118 may result ina determination that the packet 114 is to be forwarded through anothermember node 110-4 and that the member node 110-4 is to output the packet114 through a port that is dedicated for external communications.According to examples, the member node 110-3 may forward/relay thepacket 114 with header information including the forwarding pathcalculation. That is, for instance, the member node 110-3 mayforward/relay the packet 114 with information indicating that the packet114 is to be forwarded/relayed to the member node 110-4 and that themember node 110-4 is to externally output the packet 114 from thenetwork switch 100. As used herein, a forwarded packet may equivalentlybe defined as a relayed packet. The member node 110-3 may also forwardthe packet 114, which may also be termed a data plane packet or dataplane traffic, to the member node 110-4 through a dedicatedpoint-to-point member link 112 with the member node 110-4.

The member node 110-4, e.g., the ASIC in the member node 110-4, mayprocess the forwarded packet 114 to determine how to further forward thepacket 114. That is, the member node 110-4 may access the forwardingpath information contained in the header of the forwarded packet 114 andmay forward the packet 114 according to that information. In otherwords, the member node 110-4 may determine the next hop or the nextdestination for the forwarded packet 114 based upon the forwarding pathcalculated by the member node 110-3. The member node 110-4 may thusforward 120 the packet 114 without calculating another forwarding pathfor the packet 114. In instances in which the member node 110-4 forwardsthe packet 114 out of the network switch 110, the member node 110-4 mayremove the encapsulation from the packet 114 prior to forwarding thepacket 114 out of the network switch 100.

Although the member node 110-4 is depicted as forwarding the packet 114out of the network switch 100, the member node 110-4 may instead forwardthe packet 114 to another member node 110-2 depending upon theinformation pertaining to the forwarding path calculated by the membernode 110-3 contained in the packet 114. In one regard, by calculatingthe forwarding path of the packet 114 in a single member node 110-3instead of individually at each of the member nodes 110 that receive thepacket 114, the amount of processing performed by the member nodes 110may be reduced.

According to examples, the member node 110-1 that functions as acommander node and the member node 110-2 that functions as a standbynode in the network switch 100 may also be involved in the forwarding ofpackets through the network switch 100. That is, a member node 110-3that receives the packet 114 from an external communication port mayinclude the commander node 110-1 and/or the standby node 110-2 incalculating the forwarding path 118 for the packet 114. In otherexamples, however, the member node 110-3 may not include the commandernode 110-1 and/or the standby node 110-2 in calculating the forwardingpath 118 for the packet 114.

Turning now to FIG. 2, there is shown another block diagram of theexample network switch 100 depicted in FIG. 1. The network switch 100depicted in FIG. 2 includes the same features as those discussed abovewith respect to the network switch 100 depicted in FIG. 1. However,additional detail with respect to the member nodes 110 is provided inFIG. 2. That is, the member nodes 110-3 and 110-4 are depicted as eachincluding a topology manager 200, an ASIC 202, and a plurality of ports204-1 to 204-M, in which the variable “M” may represent an integergreater than one. The member nodes 110-1 and 110-2 as well as anyadditional member nodes included in the network switch 100 may havesimilar elements.

The topology manager 200 may be machine readable instructions stored ona memory that may be executed by a processor on the member node 110. Inany of these examples, the topology manager 200 in a member node 110 mayperform various functions for that member node 110. These functions mayinclude, for instance, identifying a topology type of the network switch100. That is, the topology manager 200 of a member node 110 may send andreceive control plane traffic to the topology managers 200 in the othermember nodes 110 and may identify the topology type from informationcontained in the control plane traffic. For instance, the topologymanagers 200 may determine that the network switch 100 has a chaintopology, a ring topology, ora standalone topology. In this regard, thetopology managers 200 of each of the member nodes 110 may identify thetopology type individually, e.g., a single topology manager may notidentify the topology type and forward the identified topology type tothe other topology managers. In addition, the topology managers 200 mayidentify the topology type each time a change to the topology occurs.

Each of the topology managers 200 may calculate the topology type basedon an adjacency map, which identifies which of the member nodes 110 areadjacent to which other ones of the member nodes 110. That is, forinstance, the topology managers 200 may execute a stacking protocol thatruns a topology discovery algorithm and builds the adjacency map. Theadjacency map may include a list of all of the physically present membernodes 110 and the peers of each member node 110 connected via eachmember link 112 of the member node 110. Each of the topology managers200 may independently run the topology discovery algorithm and thetopology discovery algorithm may start from a lowered number member node110 present in the adjacency map to identify the topology type. Thetopology discovery algorithm may walk through all of the member links112 recursively to find the longest chain or ring available. Inaddition, to maintain the uniform forwarding paths across each membernode 110 for the ring topology, the direction of the ring may bedetermined in the direction from the lowest member link 112 number onthe lowest numbered member node 110 in the adjacency map.

Each of the topology managers 200 of the member nodes 110 may also usethe information contained in the control plane traffic to identify theshortest path for uni-destination traffic to each other member node 110.By way of example, the topology managers 200 may identify the shortestpaths through implementation of the Dijkstra's shortest path algorithm.Once the shortest path is identified, multiple strategies may beemployed to achieve rapid recovery during a topology change, to achieveno or minimal disruption of traffic that is already flowing, to achieveminimal latency for traffic through the member nodes 110, etc. Accordingto examples, the topology managers 200 may derive the forwarding pathsfor uni-destination traffic from the adjacency maps.

The criteria for link/path costs may include aggregated link capacityand path hop count. The topology managers 200 may consider only hopcount to determine the path costs and may use a shortest path algorithm,e.g., Dijkstra's shortest path algorithm, to determine reachability toeach member node 110. For instance, the topology managers 200 may nottake link capacity into account for a number of reasons. By way ofexample, including link capacity in the shortest path computation maycause the traffic direction to change more frequently than whenincluding just hop counts. As another example, the shortest pathcomputation is expensive and changing directions may cause loss ofinflight traffic. As a further example, including the link capacity maydefeat the purpose of having multiple ports aggregated in links becausedropping even one port may trigger a topology change even though theother ports are still forwarding traffic. As a yet further example,including in the link capacity may make it more difficult totroubleshoot traffic forwarding issues.

According to examples, the member links 112 in the network switch 100may be of uniform capacity with respect to each other. As such, forinstance, the aggregated capacity of all of the member links 112 may bethe same. If one of the ports in a member link 112 goes down, causingthe link capacities to change, a forwarding path recalculation may notbe triggered. Instead, a port in a member link 112 going down may betreated as a fabric failure and warnings to the effect that the networkswitch 100 is running on a degenerated fabric may be outputted.

Each of the topology managers 200 of the member nodes 110 may furtheridentify equal-cost paths between a member node 110 and the other membernodes 110, if any. The topology managers 200 may select a forwardingpath that matches a prior forwarding path, for example, in instances inwhich the costs for multiple forwarding paths are the same. Each of thetopology managers 200 may identify the forwarding path formulti-destination traffic that originates on each of the member nodes110 through the network switch 100. Each of the topology managers 200may also identify multi-destination traffic relay/exit paths through themember nodes 110.

Each of the topology managers 200 may further program an ASIC 202 of arespective member node 110 with forwarding paths for uni-destinationtraffic, for instance, based on the destinations of the uni-destinationtraffic. Each of the topology managers 200 may further program the ASIC202 with forwarding paths and relay/exit paths for multi-destinationtraffic originating from each of the other member nodes 110. Thetopology managers 200 may further distribute the path and costinformation to other features in the member nodes 110 for theircalculations. For instance, for aggregated ports, the uni-destinationpath may be used to identify the nearest member node 110 with aggregatedmember ports, and thus, the optimal path for sending traffic to theaggregation. As another example, for tunneled traffic and mirroredtraffic, uni-destination path may be used to identify the optimal pathto the tunnel/mirror entry point.

As also shown in FIG. 2, a first port 204-1 in the third member node110-3 may be coupled to the first member node 110-1 via a member link112 and a second port 204-2 in the member node 110-3 may be coupled to asecond port 204-2 in the fourth member node 110-4 via a member link 112.In addition, the first port 204-1 in the fourth member node 110-4 may becoupled to the second member node 110-2 via a member link 112. Moreover,the ports 204-M in the third member node 110-3 and the fourth membernode 110-4 may be coupled to external devices, e.g., may be dedicated tocommunications external to the network switch 100.

In a chain topology, a single path may exist from a member node 110 toany other member node 110. As such, for instance, there may be only onepossible path from one member node 110 to any other member node 110. Ina ring topology, the uni-destination traffic flow may take the shortesthops for each member node 110 to reach any other member node 110. Ininstances in which there are two equal cost paths between member nodes110, a determination may be made as to whether a prior path currentlyprogrammed in the member node 110 is one of the equal cost paths. If so,the existing path is retained as the lowest cost path to, for instance,reduce or eliminate disruption of in-flight traffic during a topologychange.

However, if the prior path does not exist or the prior path has a highercost, the topology manager 200 may identify a ring direction. The ringdirection may be defined in the direction starting from the lowestmember link 112 number on the lowest numbered member node 110 toward thenext lowest member link 112 number and traversing the ring. When thereare equal cost paths, the path that follows the ring direction may beselected. By way of example with respect to FIG. 2, the ring directionmay be clockwise because the first member node 110-1 has the lowestnumber and the member link 112 to the second member node 110-2 may havea lower number than the member link 112 to the third member node 110-3.Thus, for instance, the uni-destination path programming for thesemember nodes may be as follows:

TABLE 1 To From 110-1 110-2 110-3 110-4 110-1 1 → 2 1 → 3 1 → 2 → 4110-2 2 → 1 2 → 4 → 3 2 → 4 110-3 3 → 1 3 → 1 → 2 3 → 4 110-4 4 → 3 → 14 → 2 4 → 3

As noted in table 1, each of the 2 hop paths may be programmed in aforwarding table to be in the direction of the determined ring. Similararrangements of uni-destination paths may be identified for acounter-clockwise ring direction. However, the 2 hop paths may beopposite those shown in table 1.

According to examples, on topology change events, the best path may beupdated in response to the new path cost being cheaper than the existingpath cost. Thus, for instance, an existing traffic path may not beupdated with a new traffic path if the costs for these paths are thesame. This may reduce or minimize drops in existing traffic flow. Ininstances in which a network switch 100 having a ring topology ischanged to have a chain topology, for instance, through removal orshutdown of a member node 110, the topology managers 200 may reprogramthe ASICs 202 to follow the chain topology. That is, there may be asingle path from any member node 110 to any other member node 110 whenthis change occurs.

For multi-destination traffic, the network switch 100 may support egresstraffic replication. Thus, for instance, the member nodes 110 may sendthe multi-destination traffic in a path or in multiple paths so that thetraffic reaches each of the other member nodes 110. Each of the membernodes 110 may do a lookup (on the egress side) on a lookup table storedin a member of the member node 110, may identify the ports of the membernode 110 that packets are to be delivered through to reach theirintended destinations, to determine if the member node 110 is to deliverthe traffic on ports of the member node 110. If so, the member node 110may deliver the traffic locally. The traffic may also be relayed furtherto other member nodes 110. To avoid duplicate traffic, a “stack exit”point or points may also be identified. An exit point may be a membernode 110 that will locally deliver traffic, but does not relay thetraffic. The traffic to be “exited” may be identified by the ingressmember node 110 of the traffic, e.g., the member node 110 that receivedthe traffic through an external communication port.

The topology manager 200 of the ingress member node 110 may have theresponsibility of computing the forwarding path or paths for themulti-destination packets. The topology managers 200 in each of themember nodes 110 may identify the stack relay or stack exit action forthe multi-destination traffic that originates (ingress) on each othermember in the stack. The topology managers 200 may program thisinformation in the respective ASICs 202.

For multi-destination traffic in a network switch 100 having a chaintopology, the multi-destination traffic may be sent across both thelinks on intermediate member nodes 110. The end of the chain membernodes 110 may be configured as exit points and the remaining membernodes 110 may be configured as relays for the multi-destination traffic.For multi-destination traffic in a network switch 100 having a ringtopology, in one example, the multi-destination traffic may be senteither in the direction of the determined ring and the exit point may beconfigured to be the furthest member node 110 from the ingress membernode 110 in the ring. In another example, the multi-destination trafficmay be sent across multiple member links 112, and two exit points may bedetermined on intermediate member nodes 110.

As noted above, in addition to identifying the traffic forwarding pathsfor the member nodes 110, the topology managers 200 may program theidentified traffic forwarding paths into the ASICs 202 of the membernodes 110. The member nodes 110 may each have one or more ASICs 202 andthe topology managers 200 in the member nodes 110 may program each ofthe one or more ASICs 202. In any regard, the member nodes 110 mayprovide a number of tables that may be used to program the forwardingpaths into the ASICs 202. A first table may be a uni-destination pathtable that may include one entry for every physical member node 110 inthe network switch 100, and one entry for each aggregated link (L-agg)that may be configured. Each of the entries in the uni-destination tablemay be programmed with the member link 112 number to be taken to reach adestination. The programmed value may also be a directive to delivertraffic locally or to drop the traffic entirely.

A second table may be a multi-destination entry table, which may be asingle directive indicating how multi-destination traffic originallyreceived on the current member node 110 is to be sent to the othermember nodes 110. This table may be programmed into an ASIC 202 to causethe ASIC 202 to send multi-destination traffic on either one of themember links 112 or both member links 112. A third table may be amulti-destination relay table that may include one entry for each membernode 110 in the network switch 100. When multi-destination traffic isreceived from a member link 112, the ASIC 202 may use the originatingstack member index to perform a look-up in the multi-destination relaytable to decide how to relay the multi-destination traffic. Each entrymay indicate whether to send the multi-destination traffic on anothermember link or links 112 or to deliver the traffic locally.

The ASICs 202 in each of the member nodes 110 may send certain types oftraffic to the commander node for processing, e.g., switching/routingprotocol packets, packets destined for the commander node, etc. As such,for instance, each of the ASICs 202 may be programmed with the path toreach the commander node. The ASICs 202 may be programmed with a singledirective indicating whether such traffic should be sent on a specificmember link 112 or delivered locally, for instance, if the ASIC 202 ison the commander node. The path to the commander node may be changedwhen the commander node changes, e.g., due to a failure of a commandernode. When this occurs, the ASICs 202 may be programmed with the newpath to the commander node.

Turning now to FIGS. 3 and 4, there are respectively shown flow diagramsof example methods 300 and 400 for operating a network switch 110including a plurality of member nodes 110 interconnected by member links112. It should be understood that the methods 300 and 400 depicted inFIGS. 3 and 4 may include additional operations and that some of theoperations described therein may be removed and/or modified withoutdeparting from scopes of the methods 300 and 400. The descriptions ofthe methods 300 and 400 are also made with reference to the featuresdepicted in FIGS. 1 and 2 for purposes of illustration. Particularly,each of the topology managers 200 of the member nodes 110 mayindividually execute some or all of the operations included in themethods 300 and 400. Thus, although reference is made herein to aparticular topology manager 200 of a particular member node 110-1, itshould be understood that the topology managers 200 of the other membernodes 110-2 to 110-4 may also perform similar operations.

With reference first to FIG. 3, at block 302, a topology manager 200 ofa member node 110-1 may detect a topology of a network switch 100 thatincludes a plurality of member nodes 110. As discussed above, thetopology manager 200 may run a topology discovery algorithm to build anadjacency map and may detect the topology of the network switch 100 fromthe adjacency map.

At block 304, the topology manager 200 may determine shortest paths foruni-destination traffic to the other member nodes 110 in the pluralityof member nodes 110 included in the network switch 100. The topologymanager 200 may determine the shortest paths for uni-destination trafficto the other member nodes 110 in any of the manners discussed above.

At block 306, the topology manager 200 may program an ASIC 202 (ormultiple ASICs 202) in the member node 110 with the determined shortestpaths for uni-destination traffic to the other member nodes 110. Thetopology manager 200 may program the ASIC(s) 202 in any of the mannersdiscussed above. The topology manager 200 may also determine equal-costpaths and paths for multi-destination traffic and may program theASIC(s) 202 with the determined equal-cost paths and paths formulti-destination traffic as also discussed above. Each of the topologymanagers 200 may individually determine the shortest paths and mayindividually program the ASICs 202 in the respective member nodes 110.

At block 308, the member node 110-4 may receive a packet 114 fromanother member node 110-3 via a member link 112. The packet 114 mayinclude a forwarding path for the packet 114 that the member node 110-4is to follow for the packet 114. That is, the other member node 110-3may have calculated the forwarding path for the packet 114 and may haveincluded the calculated forwarding path in the packet 114. In addition,the member node 110-4 may process the packet 114 to determine theforwarding path for the packet 114 to be taken by the member node 110-4.

At block 310, the ASIC 202 in the member node 110-4 may forward thereceived packet 114 without calculating another forwarding path for thepacket 114. That is, the ASIC 202 may apply the previously calculatedforwarding path for the packet 114. Depending upon the previouslycalculated forwarding path, the ASIC 202 may forward the packet 114 toanother member node 110-2, in which the ASIC 202 may maintain theencapsulation of the packet 114 when forwarding the packet 114.Alternatively, the ASIC 202 may forward the packet 114 out of thenetwork switch 100, e.g., through an external communication link, inwhich the ASIC 202 may remove the encapsulation of the packet 114 priorto forwarding the packet 114.

Turning now to FIG. 4, at block 402, a topology manager 200 of a membernode 110 may build an adjacency map, for instance, throughimplementation of a topology discovery algorithm. The adjacency map mayinclude a list of all of the physically present member nodes 110 and thepeers of each member node 110 connected via each member link 112 of themember node 110. Each of the topology managers 200 may independently runthe topology discovery algorithm and the topology discovery algorithmmay start from a lowered number member node 110 present in the adjacencymap to identify the topology type. In addition, at block 404, thetopology manager 200 may detect a topology of the member nodes 110,e.g., the topology the network switch 100.

At block 406, the topology manager 200 may identify equal cost paths, ifany, among the determined shortest paths for the uni-destinationtraffic. As discussed above, the topology manager 200 may use apreviously used path or may perform other operations for the identifiedequal cost paths. That is, in generating the forwarding paths in aforwarding table for a particular destination, the topology manager 200may choose one of the equal cost paths in the manners discussed above.

At block 408, the topology manager 200 may identify paths formulti-destination traffic. In addition, at block 410, the topologymanager 200 may identify multi-destination traffic relay/exit paths. Thetopology manager 200 may identify the paths for multi-destinationtraffic and the multi-destination traffic relay/exit paths in any of themanners discussed above.

At block 412, the topology manager 200 may program the ASIC 202 of themember node 110 with the identified paths. In other words, the topologymanager 200 may program the ASIC with forwarding tables for forwardingpackets. In addition, at block 414, the topology manager 200 maydistribute the identified path and cost information to another componentin the member node 110. The other component in the member node 110 mayuse the path and cost information to perform other calculations. Forinstance, for aggregated ports, the uni-destination path may be used toidentify the nearest member node 110 with aggregated member ports, andthus, the optimal path for sending traffic to the aggregation. Asanother example, for tunneled traffic and mirrored traffic,uni-destination path may be used to identify the optimal path to thetunnel/mirror entry point. In this regard, for instance, thedistribution of the path and cost information at block 414 may be aninternal communication between software components within a member node110.

Some or all of the operations set forth in the methods 300 and 400 maybe contained as utilities, programs, or subprograms, in any desiredcomputer accessible medium. In addition, the methods 300 and 400 may beembodied by computer programs, which may exist in a variety of forms.For example, the methods 300 and 400 may exist as machine readableinstructions, including source code, object code, executable code orother formats. Any of the above may be embodied on a non-transitorycomputer readable storage medium.

Examples of non-transitory computer readable storage media includecomputer system RAM, ROM, EPROM, EEPROM, and magnetic or optical disksor tapes. It is therefore to be understood that any electronic devicecapable of executing the above-described functions may perform thosefunctions enumerated above.

Although described specifically throughout the entirety of the instantdisclosure, representative examples of the present disclosure haveutility over a wide range of applications, and the above discussion isnot intended and should not be construed to be limiting, but is offeredas an illustrative discussion of aspects of the disclosure.

What has been described and illustrated herein is an example of thedisclosure along with some of its variations. The terms, descriptionsand figures used herein are set forth by way of illustration only andare not meant as limitations. Many variations are possible within thespirit and scope of the disclosure, which is intended to be defined bythe following claims—and their equivalents—in which all terms are meantin their broadest reasonable sense unless otherwise indicated.

What is claimed is:
 1. A network switch comprising: a plurality ofmember nodes interconnected by member links to exchange data planetraffic; and a commander node to run control and management planeprotocols for the plurality of member nodes, wherein a first member nodeof the plurality of member nodes that receives a packet incoming intothe network switch calculates a forwarding path for the packet to adestination through a second member node of the plurality of membernodes and forwards the packet to the second member node, and wherein thesecond member node forwards the packet according to the forwarding pathcalculated by the first member node without calculating anotherforwarding path for the packet.
 2. The network switch according to claim1, wherein the plurality of member nodes comprises a standby node to thecommander node, and wherein the standby node is state-full backup nodeto the commander node.
 3. The network switch according to claim 2,wherein the commander node is to manage forwarding databases and tosynchronize the forwarding databases with the standby node.
 4. Thenetwork switch according to claim 1, wherein the network switchcomprises one of: a chain topology; or a ring topology.
 5. The networkswitch according to claim 1, wherein each of the plurality of membernodes comprises a respective topology manager to detect inter-connectsand a topology of the network switch.
 6. The network switch according toclaim 5, wherein the topology manager of a member node is further to atleast one of: identify shortest paths for uni-destination traffic toeach other member node of the plurality of member nodes; identifyequal-cost paths between the member nodes; identify paths formulti-destination traffic that originates on each member node throughthe network switch; identify multi-destination traffic relay/exit pathsthrough the network switch; program an application-specific integratedcircuit (ASIC) with a path for uni-destination traffic; program the ASICwith path, stack relay and stack exit for multi-destination trafficoriginating from each other member node; or distribute the path and costinformation to other member nodes.
 7. The network switch of claim 5,wherein the topology manager of a member node is further to detect thetopology of the network switch based upon an adjacency map thatcomprises a list of the member nodes in the plurality of member nodesand peers of each of the member nodes connected via each member link ofthe member node.
 8. The network switch of claim 7, wherein the topologymanagers of the member nodes are to run independently of each other todetect the topology of the network switch.
 9. The network switch ofclaim 5, wherein the topology managers of the member nodes are todetermine changes in the topology of the network switch and to detect amodified topology of the network switch in response to the determinedchanges in the topology of the network switch.
 10. A method comprising:detecting, by a topology manager of a member node, a topology of anetwork switch comprising a plurality of member nodes inter-connected bymember links; determining, by the topology manager, shortest paths foruni-destination traffic to other member nodes in the plurality of membernodes; programming, by the topology manager, an application-specificintegrated circuit (ASIC) in the member node with the determinedshortest paths for uni-destination traffic to the other member nodes;receiving, in the member node, a forwarded packet from another membernode of the plurality of member nodes, wherein the forwarded packetincludes a forwarding path for the packet; and forwarding, by the ASIC,the forwarded packet according to the forwarding path withoutcalculating another forwarding path for the packet.
 11. The methodaccording to claim 10, further comprising at least one of: identifyingequal-cost paths between the plurality of member nodes; identifyingpaths for multi-destination traffic that originates on each member nodethrough the network switch; identifying multi-destination trafficrelay/exit paths through the plurality of member nodes; programming theASIC with path, stack relay and stack exit for multi-destination trafficoriginating from each of the other member nodes; or distributing thepath and cost information to another component in a member node of theplurality of member nodes.
 12. The method according to claim 10, furthercomprising: building an adjacency map that comprises a list of themember nodes in the plurality of member nodes and peers of each of themember nodes connected via each member link of the member node; anddetecting the topology of the network switch based upon the builtadjacency map.
 13. The method according to claim 10, wherein each of theplurality of member nodes comprises a topology manager, said methodfurther comprising: running the topology manager of the member nodeindependently of the topology manager in the other plurality of membernodes to detect the topology of the network switch.
 14. A non-transitorycomputer readable medium on which is stored machine readableinstructions that when executed by a processor cause the processor to:detect a topology of a plurality of member nodes inter-connected bymember links, the plurality of member nodes together forming a networkswitch; receive a forwarded packet from another member node of theplurality of member nodes, wherein the forwarded packet includes aforwarding path for the packet; and forward the forwarded packetaccording to the forwarding path without calculating another forwardingpath for the packet.
 15. The non-transitory computer readable mediumaccording to claim 14, wherein the instructions are further to cause theprocessor to at least one of: identify shortest paths foruni-destination traffic to each other member node of the plurality ofmember nodes; identify equal-cost paths between the member nodes;identify paths for multi-destination traffic that originates on eachmember node through the network switch; identify multi-destinationtraffic relay/exit paths through the network switch; program anapplication-specific integrated circuit (ASIC) with a path foruni-destination traffic; program the ASIC with path, stack relay andstack exit for multi-destination traffic originating from each othermember node; or distribute the path and cost information to anothercomponent in a member node of the plurality of member nodes.